home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / cmds / netstat / netstat.c < prev    next >
Encoding:
C/C++ Source or Header  |  1990-08-10  |  3.5 KB  |  115 lines

  1. /*
  2.  * sysStat.c --
  3.  *
  4.  *    Print collected by the kernel's net module.
  5.  *
  6.  * Copyright 1988 Regents of the University of California
  7.  * Permission to use, copy, modify, and distribute this
  8.  * software and its documentation for any purpose and without
  9.  * fee is hereby granted, provided that the above copyright
  10.  * notice appear in all copies.  The University of California
  11.  * makes no representations about the suitability of this
  12.  * software for any purpose.  It is provided "as is" without
  13.  * express or implied warranty.
  14.  *
  15.  */
  16.  
  17. #ifndef lint
  18. static char rcsid[] = "$Header: netStat.c,v 1.3 88/02/21 15:57:08 douglis Exp $ SPRITE (Berkeley)";
  19. #endif not lint
  20.  
  21. #include "sprite.h"
  22. #include "sysStats.h"
  23. #include <stdio.h>
  24. #include "option.h"
  25. #include "kernel/net.h"
  26.  
  27. Net_EtherStats    etherStats;
  28.  
  29. void PrintEtherStats();
  30.  
  31.  
  32. /*
  33.  *----------------------------------------------------------------------
  34.  *
  35.  * main --
  36.  *
  37.  *    Driver.
  38.  *
  39.  * Results:
  40.  *    None.
  41.  *
  42.  * Side effects:
  43.  *    Variable.
  44.  *
  45.  *----------------------------------------------------------------------
  46.  */
  47.  
  48.  
  49. main(argc, argv)
  50.     int argc;
  51.     char *argv[];
  52. {
  53.     ReturnStatus status = SUCCESS;
  54.  
  55.     status = Sys_Stats(SYS_NET_ETHER_STATS, 0, (Address) ðerStats);
  56.     if (status != SUCCESS) {
  57.     printf(stderr, "Error %x returned from Sys_Stats.\n", status);
  58.         Stat_PrintMsg(status, "");
  59.         exit(1);
  60.     }
  61.  
  62.     PrintEtherStats();
  63.     exit(status);
  64. }
  65.  
  66.  
  67.  
  68. /*
  69.  *----------------------------------------------------------------------
  70.  *
  71.  * PrintEtherStats --
  72.  *
  73.  *    Print the kernel EtherStats structure. 
  74.  *
  75.  * Results:
  76.  *    None
  77.  *
  78.  * Side effects:
  79.  *    Output is generator on stdout.
  80.  *
  81.  *----------------------------------------------------------------------
  82.  */
  83.  
  84. void
  85. PrintEtherStats()
  86. {
  87.     register Net_EtherStats    *es = ðerStats;
  88.  
  89.     printf( "Number packets received:             %d\n",es->packetsRecvd);
  90.     printf( "Number packets send:                 %d\n",es->packetsSent);
  91.     printf( "Number packets Output:               %d\n",es->packetsOutput);
  92.     printf( "Number broadcast packets received:   %d\n",es->broadRecvd);
  93.     printf( "Number broadcast packets sent:       %d\n",es->broadSent);
  94.     printf( "Number other packets:                %d\n",es->others);
  95.     printf( "Number overrunError packets:         %d\n",es->overrunErrors);
  96.     printf( "Number crcError packets:             %d\n",es->crcErrors);
  97.     printf( "Number fcsErrors packets:             %d\n",es->fcsErrors);
  98.     printf( "Number frameError packets:           %d\n",es->frameErrors);
  99.     printf( "Number rangeError packets:           %d\n",es->rangeErrors);
  100.     printf( "Number collisions:                   %d\n",es->collisions);
  101.     printf( "Number dropped due to collisions:    %d\n",es->xmitCollisionDrop);
  102.     printf( "Number transmit dropped:             %d\n",es->xmitPacketsDropped);
  103.     printf( "Number received dropped:             %d\n",es->recvPacketsDropped);
  104.     printf( "Number address matches:              %d\n",es->matches);
  105.     printf( "Number bytes sent:                %d\n",es->bytesSent);
  106.     printf( "Number bytes received:          %d\n",es->bytesReceived);
  107.     printf( "Average recv packet size:          %d\n",es->recvAvgPacketSize);
  108.     printf( "Average recv large packet size:      %d\n",es->recvAvgLargeSize);
  109.     printf( "Average recv small packet size:      %d\n",es->recvAvgSmallSize);
  110.     printf( "Average sent packet size:          %d\n",es->sentAvgPacketSize);
  111.     printf( "Average sent large packet size:      %d\n",es->sentAvgLargeSize);
  112.     printf( "Average sent small packet size:      %d\n",es->sentAvgSmallSize);
  113.  
  114. }
  115.